using System;
using JGSY.CMS.LowCode.Platform.Domain.Entities.Base;

namespace JGSY.CMS.LowCode.Platform.Domain.Entities
{
    /// <summary>
    /// 系统设置实体
    /// 用于存储系统的配置参数和设置选项
    /// 支持多租户数据隔离
    /// </summary>
    public class SystemSetting : ITenantEntity
    {
        /// <summary>
        /// 系统设置标识符
        /// </summary>
        public long Id { get; set; }
        
        /// <summary>
        /// 租户ID
        /// 用于多租户数据隔离，确保每个租户的系统设置独立
        /// </summary>
        public string TenantId { get; set; } = string.Empty;
        
        /// <summary>
        /// 设置键名
        /// 系统设置的配置键名，用于标识特定的设置项
        /// </summary>
        public string Key { get; set; } = string.Empty;
        
        /// <summary>
        /// 设置值
        /// 系统设置的配置值
        /// </summary>
        public string Value { get; set; } = string.Empty;
        
        /// <summary>
        /// 设置描述
        /// 对该系统设置项的详细说明
        /// </summary>
        public string Description { get; set; } = string.Empty;
        
        /// <summary>
        /// 设置分类
        /// 系统设置所属的分类或类别
        /// </summary>
        public string Category { get; set; } = string.Empty;
        
        /// <summary>
        /// 是否启用
        /// 标识该设置项是否处于启用状态
        /// </summary>
        public bool IsEnabled { get; set; } = true;
    }
}
